home *** CD-ROM | disk | FTP | other *** search
/ Delphi Magazine Collection 2001 / Delphi Magazine Collection 20001 (2001).iso / Bonus / Plasmatech / ptscp_eval.exe / %MAINDIR% / EvalC4 / UPTShellControls.hpp < prev    next >
Encoding:
C/C++ Source or Header  |  2001-08-31  |  40.4 KB  |  1,033 lines

  1. // Borland C++ Builder
  2. // Copyright (c) 1995, 1999 by Borland International
  3. // All rights reserved
  4.  
  5. // (DO NOT EDIT: machine generated header) 'UPTShellControls.pas' rev: 4.00
  6.  
  7. #ifndef UPTShellControlsHPP
  8. #define UPTShellControlsHPP
  9.  
  10. #pragma delphiheader begin
  11. #pragma option push -w-
  12. #include <UPTImageCombo.hpp>    // Pascal unit
  13. #include <UPTShellUtils.hpp>    // Pascal unit
  14. #include <UPTTreeList.hpp>    // Pascal unit
  15. #include <UPTShell95.hpp>    // Pascal unit
  16. #include <ImgList.hpp>    // Pascal unit
  17. #include <OLE2.hpp>    // Pascal unit
  18. #include <Menus.hpp>    // Pascal unit
  19. #include <ExtCtrls.hpp>    // Pascal unit
  20. #include <ComCtrls.hpp>    // Pascal unit
  21. #include <Commctrl.hpp>    // Pascal unit
  22. #include <StdCtrls.hpp>    // Pascal unit
  23. #include <ShellAPI.hpp>    // Pascal unit
  24. #include <Dialogs.hpp>    // Pascal unit
  25. #include <Forms.hpp>    // Pascal unit
  26. #include <Controls.hpp>    // Pascal unit
  27. #include <Graphics.hpp>    // Pascal unit
  28. #include <Classes.hpp>    // Pascal unit
  29. #include <SysUtils.hpp>    // Pascal unit
  30. #include <Messages.hpp>    // Pascal unit
  31. #include <Windows.hpp>    // Pascal unit
  32. #include <SysInit.hpp>    // Pascal unit
  33. #include <System.hpp>    // Pascal unit
  34.  
  35. //-- user supplied -----------------------------------------------------------
  36.  
  37. namespace Uptshellcontrols
  38. {
  39. //-- type declarations -------------------------------------------------------
  40. #pragma option push -b-
  41. enum TPTShellTreeOption { ptstoAutoFill, ptstoVirtualFolders, ptstoDesignInteractive, ptstoDefaultKeyHandling, 
  42.     ptstoContextMenus, ptstoDynamicRefresh, ptstoIncludeNonFolders, ptstoOleDrag, ptstoOleDrop, ptstoShowHidden 
  43.     };
  44. #pragma option pop
  45.  
  46. typedef Set<TPTShellTreeOption, ptstoAutoFill, ptstoShowHidden>  TPTShellTreeOptions;
  47.  
  48. #pragma option push -b-
  49. enum TPTShellListOption { ptsloAutoFill, ptsloNonFilesystemAncestors, ptsloDesignInteractive, ptsloDefaultKeyHandling, 
  50.     ptsloContextMenus, ptsloDontChangeFolder, ptsloDontGoBelowBase, ptsloDynamicRefresh, ptsloHideFoldersWhenLinkedToTree, 
  51.     ptsloOleDrag, ptsloOleDrop, ptsloFolderContextMenu, ptsloShowHidden };
  52. #pragma option pop
  53.  
  54. typedef Set<TPTShellListOption, ptsloAutoFill, ptsloShowHidden>  TPTShellListOptions;
  55.  
  56. #pragma option push -b-
  57. enum TPTShellComboOption { ptscoAutofill, ptscoNonFilesystemAncestors };
  58. #pragma option pop
  59.  
  60. typedef Set<TPTShellComboOption, ptscoAutofill, ptscoNonFilesystemAncestors>  TPTShellComboOptions;
  61.  
  62. typedef void __fastcall (__closure *TPTShAddItemEvent)(System::TObject* aSender, Uptshell95::IShellFolder* 
  63.     aParentIShf, Uptshell95::PItemIDList aParentAbsIdList, Uptshell95::PItemIDList aItemRelIdList, int 
  64.     aAttribs, BOOL &afAllowAdd);
  65.  
  66. typedef void __fastcall (__closure *TPTShTreeInsertItemEvent)(System::TObject* aSender, Comctrls::TTreeNode* 
  67.     aNode);
  68.  
  69. class DELPHICLASS TPTShTreeData;
  70. typedef void __fastcall (__closure *TPTShTreeDeleteItemEvent)(System::TObject* aSender, Comctrls::TTreeNode* 
  71.     aNode, TPTShTreeData* aShTreeData);
  72.  
  73. class DELPHICLASS TPTShListData;
  74. typedef void __fastcall (__closure *TPTShListDeleteItemEvent)(System::TObject* aSender, Comctrls::TListItem* 
  75.     aNode, TPTShListData* aShListData);
  76.  
  77. class DELPHICLASS TPTShComboData;
  78. typedef void __fastcall (__closure *TPTShComboDeleteItemEvent)(System::TObject* aSender, int aItem, 
  79.     TPTShComboData* aShComboData);
  80.  
  81. typedef void __fastcall (__closure *TPTShDblClickOpenEvent)(System::TObject* aSender, bool &afHandled
  82.     );
  83.  
  84. typedef void __fastcall (__closure *TPTShPopupHintEvent)(System::TObject* aSender, const AnsiString 
  85.     hint);
  86.  
  87. typedef void __fastcall (__closure *TPTShTvCustomDrawEvent)(System::TObject* aSender, Upttreelist::TPTCustomDraw* 
  88.     aCD, Comctrls::TTreeNode* aNode, TPTShTreeData* aData);
  89.  
  90. typedef void __fastcall (__closure *TPTShLvCustomDrawEvent)(System::TObject* aSender, Upttreelist::TPTCustomDraw* 
  91.     aCD, Comctrls::TListItem* aItem, TPTShListData* aData);
  92.  
  93. #pragma option push -b-
  94. enum TPTShellLocator_Which { usePidl, useCSIDL };
  95. #pragma option pop
  96.  
  97. class DELPHICLASS TPTShellLocator;
  98. #pragma pack(push, 4)
  99. class PASCALIMPLEMENTATION TPTShellLocator : public Classes::TPersistent 
  100. {
  101.     typedef Classes::TPersistent inherited;
  102.     
  103. protected:
  104.     TPTShellLocator_Which mWhich;
  105.     Uptshell95::TItemIDList *mIdList;
  106.     Uptshellutils::TCSIDL mCSIDL;
  107.     Classes::TNotifyEvent mOnChange;
  108.     DYNAMIC void __fastcall Changed(void);
  109.     AnsiString __fastcall GetPathName();
  110.     Uptshell95::PItemIDList __fastcall GetIdList(void);
  111.     Uptshellutils::TCSIDL __fastcall GetCSIDL(void);
  112.     void __fastcall SetIdList(Uptshell95::PItemIDList aValue);
  113.     void __fastcall SetPathName(AnsiString aValue);
  114.     void __fastcall SetCSIDL(Uptshellutils::TCSIDL aValue);
  115.     virtual void __fastcall DefineProperties(Classes::TFiler* filer);
  116.     void __fastcall ReadData(Classes::TStream* stream);
  117.     void __fastcall WriteData(Classes::TStream* stream);
  118.     
  119. public:
  120.     __fastcall virtual ~TPTShellLocator(void);
  121.     virtual void __fastcall Assign(Classes::TPersistent* source);
  122.     bool __fastcall IsEqual(TPTShellLocator* aValue);
  123.     void __fastcall Clear(void);
  124.     __property Uptshell95::PItemIDList IdList = {read=GetIdList, write=SetIdList};
  125.     __property AnsiString PathName = {read=GetPathName, write=SetPathName};
  126.     __property Uptshellutils::TCSIDL CSIDL = {read=GetCSIDL, write=SetCSIDL, nodefault};
  127.     __property Classes::TNotifyEvent OnChange = {read=mOnChange, write=mOnChange};
  128. public:
  129.     #pragma option push -w-inl
  130.     /* TObject.Create */ inline __fastcall TPTShellLocator(void) : Classes::TPersistent() { }
  131.     #pragma option pop
  132.     
  133. };
  134.  
  135. #pragma pack(pop)
  136.  
  137. class DELPHICLASS TPTCustomShellTree;
  138. class DELPHICLASS TPTCustomShellList;
  139. #pragma option push -b-
  140. enum TPTCustomShellList_LCS { lcsNone, lcsShellDetails, lcsDefault };
  141. #pragma option pop
  142.  
  143. class DELPHICLASS TPTCustomShellCombo;
  144. #pragma pack(push, 4)
  145. class PASCALIMPLEMENTATION TPTCustomShellCombo : public Uptimagecombo::TPTCustomImageCombo 
  146. {
  147.     typedef Uptimagecombo::TPTCustomImageCombo inherited;
  148.     
  149. private:
  150.     int mIgnoreChanges;
  151.     TPTCustomShellTree* mShellTree;
  152.     TPTCustomShellList* mShellList;
  153.     TPTShellLocator* mSelectedFolder;
  154.     TPTShellComboOptions mOptions;
  155.     HIDESBASE MESSAGE void __fastcall CMDesignHitTest(Messages::TWMMouse &aMsg);
  156.     TPTShellLocator* __fastcall GetSelectedFolder(void);
  157.     TPTShComboData* __fastcall GetShComboData(int index);
  158.     void __fastcall SetSelectedFolder(TPTShellLocator* aValue);
  159.     void __fastcall SetShellList(TPTCustomShellList* aValue);
  160.     void __fastcall SetShellTree(TPTCustomShellTree* aValue);
  161.     
  162. protected:
  163.     virtual BOOL __fastcall CanAdd(Uptshell95::IShellFolder* aParentIShf, Uptshell95::PItemIDList aParentAbsPidl
  164.         , Uptshell95::PItemIDList aItemRelPidl, unsigned attribs);
  165.     DYNAMIC void __fastcall SelEndOk(void);
  166.     virtual void __fastcall CreateWnd(void);
  167.     virtual void __fastcall DestroyWnd(void);
  168.     virtual void __fastcall Loaded(void);
  169.     virtual void __fastcall DeleteItem(void * aItem);
  170.     virtual void __fastcall GetItemData(Uptimagecombo::TPTImageComboItem* aItem);
  171.     virtual void __fastcall SelectedFolderChanged(System::TObject* aSender);
  172.     virtual void __fastcall TreeChanged(Comctrls::TTreeNode* aTreeNode);
  173.     virtual void __fastcall FillCombo(Uptshell95::IShellFolder* aIShf, Uptshell95::PItemIDList aBasePidl
  174.         , int aIndent, Uptshellutils::TPTIdListArray* aSelectedItem);
  175.     __property TPTCustomShellTree* ShellTree = {read=mShellTree, write=SetShellTree};
  176.     __property TPTCustomShellList* ShellList = {read=mShellList, write=SetShellList};
  177.     __property IndentPixels ;
  178.     __property TPTShellComboOptions Options = {read=mOptions, write=mOptions, default=3};
  179.     __property TPTShellLocator* SelectedFolder = {read=GetSelectedFolder, write=SetSelectedFolder};
  180.     __property TPTShComboData* ShComboData[int index] = {read=GetShComboData};
  181.     __property Items  = {stored=false};
  182.     
  183. public:
  184.     __fastcall virtual TPTCustomShellCombo(Classes::TComponent* aOwner);
  185.     __fastcall virtual ~TPTCustomShellCombo(void);
  186.     void __fastcall FillItems(void);
  187.     void __fastcall GoUp(int aLevels);
  188.     void __fastcall Synchronize(bool afApplyToGroup);
  189. public:
  190.     #pragma option push -w-inl
  191.     /* TWinControl.CreateParented */ inline __fastcall TPTCustomShellCombo(HWND ParentWindow) : Uptimagecombo::TPTCustomImageCombo(
  192.         ParentWindow) { }
  193.     #pragma option pop
  194.     
  195. };
  196.  
  197. #pragma pack(pop)
  198.  
  199. #pragma pack(push, 4)
  200. class PASCALIMPLEMENTATION TPTCustomShellList : public Upttreelist::TPTCustomListView 
  201. {
  202.     typedef Upttreelist::TPTCustomListView inherited;
  203.     
  204. private:
  205.     TPTCustomShellList_LCS mLastColState;
  206.     bool mLastFolderWasDir;
  207.     TPTShPopupHintEvent mOnPopupHintProc;
  208.     Uptshell95::IShellFolder* mIShf;
  209.     Uptshell95::TItemIDList *mIShfPidl;
  210.     bool mfIShellDetailsValid;
  211.     Uptshell95::IShellDetails* mIShellDetails;
  212.     TPTShellLocator* mFolder;
  213.     TPTShellListOptions mOptions;
  214.     TPTShAddItemEvent mOnAddItemProc;
  215.     TPTShListDeleteItemEvent mOnDeleteItemProc;
  216.     TPTShDblClickOpenEvent mOnDblClickOpenProc;
  217.     TPTShLvCustomDrawEvent mOnCustomDrawShProc;
  218.     TPTShLvCustomDrawEvent mOnCustomDrawShExProc;
  219.     Classes::TNotifyEvent mOnFillComplete;
  220.     Classes::TNotifyEvent mOnFillStart;
  221.     Classes::TNotifyEvent mOnFolderChanged;
  222.     AnsiString mFileFilter;
  223.     void *mFilterLookupTable;
  224.     Classes::TStringList* mFilterExtensions;
  225.     Extctrls::TTimer* mTimer;
  226.     TPTCustomShellTree* mShellTree;
  227.     TPTCustomShellCombo* mShellCombo;
  228.     Uptshell95::IContextMenu* mActiveIContextMenu;
  229.     int mSortColumn;
  230.     int mIgnoreChanges;
  231.     bool mfIgnoreNextChangeNotify;
  232.     void *mChangeHandlerThread;
  233.     AnsiString mDeferredEditName;
  234.     bool mfSkipRButtonUp;
  235.     bool mfDeferRefresh;
  236.     bool mfRefreshDeferred;
  237.     TPTShListData* mCurrentItemData;
  238.     unsigned mCurrentItemFlags;
  239.     Uptshell95::IShellDetails* mCurrentItemIShd;
  240.     int mLastAutoScrollTick;
  241.     bool mfLoaded;
  242.     bool mfInCreateWnd;
  243.     bool mfSortColumnAssigned;
  244.     bool mfDeletingItems;
  245.     IDataObject* mIDataObject;
  246.     void __fastcall OleBeginDrag(Controls::TMouseButton aButton);
  247.     
  248. protected:
  249.     IDropTarget* mIDropTarget;
  250.     IDataObject* mILastDropDataObject;
  251.     int mInitialDropKeyState;
  252.     virtual unsigned __fastcall OnDropTarget_DragEnter(const IDataObject* dataObj, int grfKeyState, const 
  253.         Windows::TPoint &pt, int &dwEffect);
  254.     virtual unsigned __fastcall OnDropTarget_DragOver(int grfKeyState, const Windows::TPoint &pt, int &
  255.         dwEffect);
  256.     virtual unsigned __fastcall OnDropTarget_DragLeave(void);
  257.     virtual unsigned __fastcall OnDropTarget_Drop(const IDataObject* dataObj, int grfKeyState, const Windows::TPoint 
  258.         &pt, int &dwEffect);
  259.     
  260. private:
  261.     void __fastcall InitColumns(Uptshell95::IShellDetails* ishd);
  262.     void __fastcall InitImageLists(void);
  263.     bool __fastcall IsFolderStored(void);
  264.     Uptshell95::IShellDetails* __fastcall GetCurrentFolderIShellDetails(void);
  265.     void __fastcall HandleOnFolderChanged(System::TObject* aSender);
  266.     TPTShListData* __fastcall GetSelectedItem(void);
  267.     TPTShListData* __fastcall GetShListData(int idx);
  268.     void __fastcall SetFileFilter(const AnsiString aValue);
  269.     void __fastcall SetFolder(TPTShellLocator* aValue);
  270.     void __fastcall SetShellTree(TPTCustomShellTree* aValue);
  271.     void __fastcall SetShellCombo(TPTCustomShellCombo* aValue);
  272.     void __fastcall SetSortColumn(int aValue);
  273.     void __fastcall SetOptions(TPTShellListOptions aValue);
  274.     void __fastcall TimerElapsed(System::TObject* sender);
  275.     MESSAGE void __fastcall AMChangeNotify(Messages::TMessage &aMsg);
  276.     MESSAGE void __fastcall AMDeferredEdit(Messages::TMessage &aMsg);
  277.     MESSAGE void __fastcall AMDeferredFill(Messages::TMessage &aMsg);
  278.     HIDESBASE MESSAGE void __fastcall CMDesignHitTest(Messages::TWMMouse &aMsg);
  279.     MESSAGE void __fastcall CMWantSpecialKey(Messages::TWMKey &aMsg);
  280.     HIDESBASE MESSAGE void __fastcall CNNotify(Messages::TWMNotify &aMsg);
  281.     MESSAGE void __fastcall WMMenuChar(Messages::TWMMenuChar &aMsg);
  282.     HIDESBASE MESSAGE void __fastcall WMDrawItem(Messages::TWMDrawItem &aMsg);
  283.     HIDESBASE MESSAGE void __fastcall WMDestroy(Messages::TWMNoParams &aMsg);
  284.     HIDESBASE MESSAGE void __fastcall WMNCDestroy(Messages::TWMNoParams &aMsg);
  285.     HIDESBASE MESSAGE void __fastcall WMNCHitTest(Messages::TWMNCHitTest &aMsg);
  286.     HIDESBASE MESSAGE void __fastcall WMMeasureItem(Messages::TWMMeasureItem &aMsg);
  287.     MESSAGE void __fastcall WMMenuSelect(Messages::TWMMenuSelect &aMsg);
  288.     HIDESBASE MESSAGE void __fastcall WMRButtonUp(Messages::TWMMouse &aMsg);
  289.     MESSAGE void __fastcall WMInitMenuPopup(Messages::TWMInitMenuPopup &aMsg);
  290.     HIDESBASE MESSAGE void __fastcall WMWindowPosChanged(Messages::TWMWindowPosMsg &aMsg);
  291.     MESSAGE void __fastcall WMGetIShellBrowser(Messages::TMessage &aMsg);
  292.     
  293. protected:
  294.     bool __fastcall ShouldInclude(Uptshell95::PItemIDList baseidlist, Uptshell95::PItemIDList relidlist
  295.         , unsigned &attrib);
  296.     unsigned __fastcall AddNewShellItem(Uptshell95::PItemIDList aAbsIdList, Uptshell95::PItemIDList aRelIdList
  297.         );
  298.     virtual BOOL __fastcall CanAdd(Uptshell95::IShellFolder* parentIShf, Uptshell95::PItemIDList parentAbsPidl
  299.         , Uptshell95::PItemIDList itemRelPidl, unsigned itemAttributes);
  300.     DYNAMIC bool __fastcall CanEdit(Comctrls::TListItem* aItem);
  301.     DYNAMIC bool __fastcall DblClickOpen(void);
  302.     virtual void __fastcall DeviceChangeDetected(System::TObject* ASender, Messages::TMessage &AMessage
  303.         );
  304.     DYNAMIC void __fastcall Edit(const tagLVITEMA &Item);
  305.     virtual void __fastcall FillList(Uptshell95::IShellFolder* ishf, Uptshell95::PItemIDList basepidl);
  306.         
  307.     DYNAMIC void __fastcall FillComplete(void);
  308.     DYNAMIC void __fastcall FillStart(void);
  309.     DYNAMIC void __fastcall FolderChanged(void);
  310.     virtual void __fastcall Loaded(void);
  311.     virtual void __fastcall Notification(Classes::TComponent* aComponent, Classes::TOperation aOperation
  312.         );
  313.     virtual void __fastcall CreateWnd(void);
  314.     virtual void __fastcall DestroyWnd(void);
  315.     void __fastcall TreeChanged(Comctrls::TTreeNode* aTreeNode);
  316.     DYNAMIC void __fastcall Delete(Comctrls::TListItem* item);
  317.     DYNAMIC void __fastcall ColClick(Comctrls::TListColumn* Column);
  318.     DYNAMIC unsigned __fastcall GetUIObjectForAllSelected(const GUID &riid, void * &interfaceOut);
  319.     DYNAMIC unsigned __fastcall GetUIObjectForItem(Comctrls::TListItem* aItem, const GUID &riid, void * 
  320.         &interfaceOut);
  321.     DYNAMIC void __fastcall KeyDown(Word &key, Classes::TShiftState aShiftState);
  322.     DYNAMIC void __fastcall KeyPress(char &key);
  323.     DYNAMIC void __fastcall MouseDown(Controls::TMouseButton aButton, Classes::TShiftState aShift, int 
  324.         x, int y);
  325.     DYNAMIC void __fastcall ItemContextMenu(Comctrls::TListItem* aItem, Windows::TPoint &aPos, Menus::TPopupMenu* 
  326.         &aMenu);
  327.     bool __fastcall ItemHasData(Comctrls::TListItem* aItem);
  328.     DYNAMIC void __fastcall InsertItem(Comctrls::TListItem* Item);
  329.     DYNAMIC bool __fastcall DoMouseWheelDown(Classes::TShiftState Shift, const Windows::TPoint &MousePos
  330.         );
  331.     DYNAMIC bool __fastcall DoMouseWheelUp(Classes::TShiftState Shift, const Windows::TPoint &MousePos)
  332.         ;
  333.     virtual Upttreelist::TPTCustomDraw* __fastcall PTCustomDraw(const Upttreelist::TNMCustomDraw &aNMHDR
  334.         , int &aResult);
  335.     DYNAMIC void __fastcall PTCustomDrawSh(Upttreelist::TPTCustomDraw* aCD, Comctrls::TListItem* aItem, 
  336.         TPTShListData* aData);
  337.     DYNAMIC void __fastcall InstallChangeHandler(void);
  338.     virtual void __fastcall FilterPreApply(void);
  339.     virtual bool __fastcall FilterApply(const AnsiString aFilename, unsigned aAttrib);
  340.     virtual void __fastcall FilterPostApply(void);
  341.     bool __fastcall IsFolderNetworkShare(void);
  342.     __property Columns  = {stored=false};
  343.     __property Items  = {stored=false};
  344.     __property AllocBy  = {stored=false, default=0};
  345.     __property TPTShListData* SelectedItem = {read=GetSelectedItem};
  346.     __property TPTShListData* ShListData[int idx] = {read=GetShListData};
  347.     __property int SortColumn = {read=mSortColumn, write=SetSortColumn, nodefault};
  348.     __property Uptshell95::IShellFolder* _IShellFolder = {read=mIShf};
  349.     __property TPTShellListOptions Options = {read=mOptions, write=SetOptions, default=7835};
  350.     __property TPTShellLocator* Folder = {read=mFolder, write=SetFolder, stored=IsFolderStored};
  351.     __property AnsiString FileFilter = {read=mFileFilter, write=SetFileFilter};
  352.     __property TPTShAddItemEvent OnAddItem = {read=mOnAddItemProc, write=mOnAddItemProc};
  353.     __property TPTShListDeleteItemEvent OnDeleteItem = {read=mOnDeleteItemProc, write=mOnDeleteItemProc
  354.         };
  355.     __property TPTShPopupHintEvent OnPopupHint = {read=mOnPopupHintProc, write=mOnPopupHintProc};
  356.     __property TPTShDblClickOpenEvent OnDblClickOpen = {read=mOnDblClickOpenProc, write=mOnDblClickOpenProc
  357.         };
  358.     __property TPTShLvCustomDrawEvent OnCustomDrawSh = {read=mOnCustomDrawShProc, write=mOnCustomDrawShProc
  359.         };
  360.     __property TPTShLvCustomDrawEvent OnCustomDrawShEx = {read=mOnCustomDrawShExProc, write=mOnCustomDrawShExProc
  361.         };
  362.     __property Classes::TNotifyEvent OnFillComplete = {read=mOnFillComplete, write=mOnFillComplete};
  363.     __property Classes::TNotifyEvent OnFillStart = {read=mOnFillStart, write=mOnFillStart};
  364.     __property Classes::TNotifyEvent OnFolderChanged = {read=mOnFolderChanged, write=mOnFolderChanged};
  365.         
  366.     
  367. public:
  368.     __fastcall virtual TPTCustomShellList(Classes::TComponent* aOwner);
  369.     __fastcall virtual ~TPTCustomShellList(void);
  370.     bool __fastcall CreateNewFolder(bool afEditNow);
  371.     void __fastcall DoCommandForItem(Comctrls::TListItem* aItem, char * cmd);
  372.     void __fastcall DoCommandForAllSelected(char * cmd);
  373.     void __fastcall DoCommandForFolder(char * cmd);
  374.     void __fastcall FillItems(void);
  375.     void __fastcall GoUp(int aLevels);
  376.     TPTShListData* __fastcall GetDataFromItem(Comctrls::TListItem* item);
  377.     void __fastcall OpenItem(Comctrls::TListItem* aItem);
  378.     void __fastcall OpenSelectedItems(void);
  379.     void __fastcall ProcessMenu(Comctrls::TListItem* aItem, const Windows::TPoint &at);
  380.     void __fastcall ProcessMenuForAllSelected(const Windows::TPoint &at);
  381.     void __fastcall ProcessSendTo(int idx);
  382.     void __fastcall RefreshItems(void);
  383.     unsigned __fastcall GetDragDropAttributesForAllSelected(void);
  384.     unsigned __fastcall GetDragDropAttributesForItem(Comctrls::TListItem* item);
  385.     void __fastcall SelectAll(void);
  386.     int __fastcall ShellSelCount(void);
  387.     void __fastcall SortList(void);
  388.     void __fastcall Synchronize(bool afApplyToGroup);
  389. public:
  390.     #pragma option push -w-inl
  391.     /* TWinControl.CreateParented */ inline __fastcall TPTCustomShellList(HWND ParentWindow) : Upttreelist::TPTCustomListView(
  392.         ParentWindow) { }
  393.     #pragma option pop
  394.     
  395. };
  396.  
  397. #pragma pack(pop)
  398.  
  399. #pragma pack(push, 4)
  400. class PASCALIMPLEMENTATION TPTCustomShellTree : public Upttreelist::TPTCustomTreeView 
  401. {
  402.     typedef Upttreelist::TPTCustomTreeView inherited;
  403.     
  404. private:
  405.     TPTShellLocator* mBaseFolder;
  406.     TPTShellLocator* mSelectedFolder;
  407.     Extctrls::TTimer* mTimer;
  408.     TPTCustomShellList* mShellList;
  409.     TPTShellTreeOptions mOptions;
  410.     TPTShAddItemEvent mOnAddItemProc;
  411.     TPTShTreeDeleteItemEvent mOnDeleteItemProc;
  412.     TPTShTreeInsertItemEvent mOnInsertItemProc;
  413.     TPTShPopupHintEvent mOnPopupHintProc;
  414.     TPTShTvCustomDrawEvent mOnCustomDrawShProc;
  415.     TPTShTvCustomDrawEvent mOnCustomDrawShExProc;
  416.     Classes::TNotifyEvent mOnFillCompleteProc;
  417.     Classes::TNotifyEvent mOnFillStartProc;
  418.     TPTCustomShellCombo* mShellCombo;
  419.     Uptshell95::IContextMenu* mActiveIContextMenu;
  420.     BOOL mfQuickSelect;
  421.     int mIgnoreChanges;
  422.     BOOL mfEatExpand;
  423.     bool mfIgnoreNextChangeNotify;
  424.     void *mChangeHandlerThread;
  425.     bool mfDeferRefresh;
  426.     bool mfRefreshDeferred;
  427.     Comctrls::TTreeNode* mDragNode;
  428.     int mLastAutoScrollTick;
  429.     Comctrls::TTreeNode* mLastNode;
  430.     bool mfLoaded;
  431.     bool mfDeletingNodes;
  432.     IDataObject* mIDataObject;
  433.     void __fastcall OleBeginDrag(Controls::TMouseButton aButton);
  434.     
  435. protected:
  436.     IDropTarget* mIDropTarget;
  437.     IDataObject* mILastDropDataObject;
  438.     int mInitialDropKeyState;
  439.     virtual unsigned __fastcall OnDropTarget_DragEnter(const IDataObject* dataObj, int grfKeyState, const 
  440.         Windows::TPoint &pt, int &dwEffect);
  441.     virtual unsigned __fastcall OnDropTarget_DragOver(int grfKeyState, const Windows::TPoint &pt, int &
  442.         dwEffect);
  443.     virtual unsigned __fastcall OnDropTarget_DragLeave(void);
  444.     virtual unsigned __fastcall OnDropTarget_Drop(const IDataObject* dataObj, int grfKeyState, const Windows::TPoint 
  445.         &pt, int &dwEffect);
  446.     
  447. private:
  448.     void __fastcall InitImageList(void);
  449.     void __fastcall BaseFolderChanged(System::TObject* sender);
  450.     void __fastcall SelectedFolderChanged(System::TObject* sender);
  451.     void __fastcall TimerElapsed(System::TObject* sender);
  452.     TPTShTreeData* __fastcall GetSelectedItem(void);
  453.     AnsiString __fastcall GetSelectedPathName();
  454.     TPTShTreeData* __fastcall GetShTreeData(int idx);
  455.     void __fastcall SetBaseFolder(TPTShellLocator* aValue);
  456.     void __fastcall SetShellList(TPTCustomShellList* aValue);
  457.     void __fastcall SetOptions(TPTShellTreeOptions aValue);
  458.     void __fastcall SetSelectedFolder(TPTShellLocator* aValue);
  459.     void __fastcall DoSetSelectedIdList(Uptshell95::PItemIDList aValue);
  460.     void __fastcall SetShellCombo(TPTCustomShellCombo* aValue);
  461.     MESSAGE void __fastcall AMChangeNotify(Messages::TMessage &aMsg);
  462.     MESSAGE void __fastcall AMDeferredFill(Messages::TMessage &aMsg);
  463.     HIDESBASE MESSAGE void __fastcall CMDesignHitTest(Messages::TWMMouse &aMsg);
  464.     MESSAGE void __fastcall CMWantSpecialKey(Messages::TWMKey &aMsg);
  465.     HIDESBASE MESSAGE void __fastcall CNNotify(Messages::TWMNotify &aMsg);
  466.     MESSAGE void __fastcall TVMDeleteItem(Messages::TMessage &aMsg);
  467.     MESSAGE void __fastcall WMMenuChar(Messages::TWMMenuChar &aMsg);
  468.     HIDESBASE MESSAGE void __fastcall WMDrawItem(Messages::TWMDrawItem &aMsg);
  469.     HIDESBASE MESSAGE void __fastcall WMNCDestroy(Messages::TWMNoParams &aMsg);
  470.     HIDESBASE MESSAGE void __fastcall WMNCHitTest(Messages::TWMNCHitTest &aMsg);
  471.     HIDESBASE MESSAGE void __fastcall WMMeasureItem(Messages::TWMMeasureItem &aMsg);
  472.     MESSAGE void __fastcall WMMenuSelect(Messages::TWMMenuSelect &aMsg);
  473.     MESSAGE void __fastcall WMInitMenuPopup(Messages::TWMInitMenuPopup &aMsg);
  474.     HIDESBASE MESSAGE void __fastcall WMWindowPosChanged(Messages::TWMWindowPosMsg &aMsg);
  475.     HIDESBASE MESSAGE void __fastcall WMPaint(Messages::TWMPaint &aMsg);
  476.     
  477. protected:
  478.     void __fastcall SetSelectedPathName(AnsiString aValue);
  479.     unsigned __fastcall AddNewShellNode(Uptshell95::IShellFolder* aParent, Uptshell95::PItemIDList aParentAbsIdList
  480.         , Comctrls::TTreeNode* aParentNode, Uptshell95::PItemIDList aRelIdList);
  481.     virtual BOOL __fastcall CanAdd(Uptshell95::IShellFolder* aParentIShf, Uptshell95::PItemIDList aParentAbsPidl
  482.         , Uptshell95::PItemIDList aItemRelPidl, unsigned attribs);
  483.     DYNAMIC bool __fastcall CanExpand(Comctrls::TTreeNode* aNode);
  484.     DYNAMIC bool __fastcall CanEdit(Comctrls::TTreeNode* Node);
  485.     DYNAMIC void __fastcall Change(Comctrls::TTreeNode* Node);
  486.     virtual void __fastcall DeviceChangeDetected(System::TObject* ASender, Messages::TMessage &AMessage
  487.         );
  488.     virtual Upttreelist::TPTCustomDraw* __fastcall PTCustomDraw(const Upttreelist::TNMCustomDraw &aNMHDR
  489.         , int &aResult);
  490.     DYNAMIC void __fastcall PTCustomDrawSh(Upttreelist::TPTCustomDraw* aCD, Comctrls::TTreeNode* aNode, 
  491.         TPTShTreeData* aData);
  492.     DYNAMIC void __fastcall DoOnInsertItem(Comctrls::TTreeNode* aNode);
  493.     DYNAMIC void __fastcall NodeContextMenu(Comctrls::TTreeNode* aNode, Windows::TPoint &aPos, Menus::TPopupMenu* 
  494.         &aMenu);
  495.     bool __fastcall NodeHasData(Comctrls::TTreeNode* aNode);
  496.     DYNAMIC void __fastcall Delete(Comctrls::TTreeNode* aNode);
  497.     DYNAMIC void __fastcall ExpandNode(Comctrls::TTreeNode* aNode);
  498.     DYNAMIC void __fastcall Edit(const tagTVITEMA &aItem);
  499.     virtual void __fastcall FillTree(Uptshell95::IShellFolder* ishf, Comctrls::TTreeNode* aBaseNode);
  500.     DYNAMIC void __fastcall FillComplete(void);
  501.     DYNAMIC void __fastcall FillStart(void);
  502.     Comctrls::TTreeNode* __fastcall GetFirstRootLevelShellNode(void);
  503.     virtual void __fastcall GetImageIndex(Comctrls::TTreeNode* aNode);
  504.     virtual void __fastcall GetSelectedIndex(Comctrls::TTreeNode* aNode);
  505.     virtual void __fastcall Loaded(void);
  506.     virtual void __fastcall Notification(Classes::TComponent* aComponent, Classes::TOperation aOperation
  507.         );
  508.     virtual void __fastcall CreateParams(Controls::TCreateParams &p);
  509.     virtual void __fastcall CreateWnd(void);
  510.     virtual void __fastcall DestroyWnd(void);
  511.     DYNAMIC void __fastcall KeyDown(Word &key, Classes::TShiftState aShiftState);
  512.     DYNAMIC void __fastcall ProcessSendTo(Comctrls::TTreeNode* aItem, int idx);
  513.     DYNAMIC bool __fastcall DoMouseWheelDown(Classes::TShiftState Shift, const Windows::TPoint &MousePos
  514.         );
  515.     DYNAMIC bool __fastcall DoMouseWheelUp(Classes::TShiftState Shift, const Windows::TPoint &MousePos)
  516.         ;
  517.     DYNAMIC void __fastcall InstallChangeHandler(const AnsiString aPathname);
  518.     void __fastcall InstallChangeHandlersForAllLocalDrives(void);
  519.     __property TPTShTreeData* SelectedItem = {read=GetSelectedItem};
  520.     __property TPTShellLocator* SelectedFolder = {read=mSelectedFolder, write=SetSelectedFolder};
  521.     __property AnsiString SelectedPathName = {read=GetSelectedPathName, write=SetSelectedPathName};
  522.     __property TPTShTreeData* ShTreeData[int idx] = {read=GetShTreeData};
  523.     __property Items  = {stored=false};
  524.     __property TPTShellLocator* BaseFolder = {read=mBaseFolder, write=SetBaseFolder};
  525.     __property TPTCustomShellList* ShellList = {read=mShellList, write=SetShellList};
  526.     __property TPTShellTreeOptions Options = {read=mOptions, write=SetOptions, default=955};
  527.     __property TPTShAddItemEvent OnAddItem = {read=mOnAddItemProc, write=mOnAddItemProc};
  528.     __property TPTShTreeDeleteItemEvent OnDeleteItem = {read=mOnDeleteItemProc, write=mOnDeleteItemProc
  529.         };
  530.     __property TPTShTreeInsertItemEvent OnInsertItem = {read=mOnInsertItemProc, write=mOnInsertItemProc
  531.         };
  532.     __property TPTShPopupHintEvent OnPopupHint = {read=mOnPopupHintProc, write=mOnPopupHintProc};
  533.     __property Classes::TNotifyEvent OnFillComplete = {read=mOnFillCompleteProc, write=mOnFillCompleteProc
  534.         };
  535.     __property Classes::TNotifyEvent OnFillStart = {read=mOnFillStartProc, write=mOnFillStartProc};
  536.     __property TPTShTvCustomDrawEvent OnCustomDrawSh = {read=mOnCustomDrawShProc, write=mOnCustomDrawShProc
  537.         };
  538.     __property TPTShTvCustomDrawEvent OnCustomDrawShEx = {read=mOnCustomDrawShExProc, write=mOnCustomDrawShExProc
  539.         };
  540.     
  541. public:
  542.     __fastcall virtual TPTCustomShellTree(Classes::TComponent* aOwner);
  543.     __fastcall virtual ~TPTCustomShellTree(void);
  544.     void __fastcall FillItems(void);
  545.     void __fastcall RefreshNodes(void);
  546.     TPTShTreeData* __fastcall GetDataFromNode(Comctrls::TTreeNode* node);
  547.     void __fastcall GoUp(int aLevels);
  548.     bool __fastcall CreateNewFolder(bool afEditNow);
  549.     unsigned __fastcall DoCommandForNode(Comctrls::TTreeNode* aNode, char * aCmd);
  550.     Comctrls::TTreeNode* __fastcall FindNodeWithIdList(Comctrls::TTreeNode* baseNode, Uptshell95::PItemIDList 
  551.         pidl);
  552.     DYNAMIC void __fastcall ProcessMenu(Comctrls::TTreeNode* aItem, const Windows::TPoint &at);
  553.     void __fastcall SortNode(Comctrls::TTreeNode* aTreeNode);
  554.     void __fastcall Synchronize(bool afApplyToGroup);
  555.     unsigned __fastcall GetDragDropAttributesForNode(Comctrls::TTreeNode* node);
  556. public:
  557.     #pragma option push -w-inl
  558.     /* TWinControl.CreateParented */ inline __fastcall TPTCustomShellTree(HWND ParentWindow) : Upttreelist::TPTCustomTreeView(
  559.         ParentWindow) { }
  560.     #pragma option pop
  561.     
  562. };
  563.  
  564. #pragma pack(pop)
  565.  
  566. class DELPHICLASS TPTShellTree;
  567. #pragma pack(push, 4)
  568. class PASCALIMPLEMENTATION TPTShellTree : public TPTCustomShellTree 
  569. {
  570.     typedef TPTCustomShellTree inherited;
  571.     
  572. public:
  573.     __property SelectedItem ;
  574.     __property SelectedFolder ;
  575.     __property SelectedPathName ;
  576.     __property ShTreeData ;
  577.     __property Items ;
  578.     
  579. __published:
  580.     __property BaseFolder ;
  581.     __property OnNodeContextMenu ;
  582.     __property ShellList ;
  583.     __property Options ;
  584.     __property OnAddItem ;
  585.     __property OnDeleteItem ;
  586.     __property OnInsertItem ;
  587.     __property OnPopupHint ;
  588.     __property OnCustomDrawSh ;
  589.     __property OnCustomDrawShEx ;
  590.     __property OnFillComplete ;
  591.     __property OnFillStart ;
  592.     __property ShowButtons ;
  593.     __property BorderStyle ;
  594.     __property DragCursor ;
  595.     __property ShowLines ;
  596.     __property ShowRoot ;
  597.     __property ReadOnly ;
  598.     __property DragMode ;
  599.     __property HideSelection ;
  600.     __property Indent ;
  601.     __property OnEditing ;
  602.     __property OnEdited ;
  603.     __property OnExpanding ;
  604.     __property OnExpanded ;
  605.     __property OnCollapsing ;
  606.     __property OnCollapsed ;
  607.     __property OnChanging ;
  608.     __property OnChange ;
  609.     __property OnDeletion ;
  610.     __property OnGetImageIndex ;
  611.     __property OnGetSelectedIndex ;
  612.     __property Align ;
  613.     __property Enabled ;
  614.     __property Font ;
  615.     __property Color ;
  616.     __property ParentColor ;
  617.     __property ParentCtl3D ;
  618.     __property ParentFont ;
  619.     __property Ctl3D ;
  620.     __property TabOrder ;
  621.     __property TabStop ;
  622.     __property Visible ;
  623.     __property OnClick ;
  624.     __property OnEnter ;
  625.     __property OnExit ;
  626.     __property OnDragDrop ;
  627.     __property OnDragOver ;
  628.     __property OnStartDrag ;
  629.     __property OnEndDrag ;
  630.     __property OnMouseDown ;
  631.     __property OnMouseMove ;
  632.     __property OnMouseUp ;
  633.     __property OnDblClick ;
  634.     __property OnKeyDown ;
  635.     __property OnKeyPress ;
  636.     __property OnKeyUp ;
  637.     __property PopupMenu ;
  638.     __property ParentShowHint ;
  639.     __property ShowHint ;
  640.     __property StateImages ;
  641.     __property RightClickSelect ;
  642.     __property Anchors ;
  643.     __property AutoExpand ;
  644.     __property BiDiMode ;
  645.     __property BorderWidth ;
  646.     __property ChangeDelay ;
  647.     __property Constraints ;
  648.     __property DragKind ;
  649.     __property HotTrack ;
  650.     __property ParentBiDiMode ;
  651.     __property RowSelect ;
  652.     __property ToolTips ;
  653.     __property OnEndDock ;
  654.     __property OnStartDock ;
  655.     __property OnMouseWheelDown ;
  656.     __property OnMouseWheelUp ;
  657.     __property OnMouseWheel ;
  658.     __property OnCustomDraw ;
  659.     __property OnCustomDrawItem ;
  660. public:
  661.     #pragma option push -w-inl
  662.     /* TPTCustomShellTree.Create */ inline __fastcall virtual TPTShellTree(Classes::TComponent* aOwner)
  663.          : TPTCustomShellTree(aOwner) { }
  664.     #pragma option pop
  665.     #pragma option push -w-inl
  666.     /* TPTCustomShellTree.Destroy */ inline __fastcall virtual ~TPTShellTree(void) { }
  667.     #pragma option pop
  668.     
  669. public:
  670.     #pragma option push -w-inl
  671.     /* TWinControl.CreateParented */ inline __fastcall TPTShellTree(HWND ParentWindow) : TPTCustomShellTree(
  672.         ParentWindow) { }
  673.     #pragma option pop
  674.     
  675. };
  676.  
  677. #pragma pack(pop)
  678.  
  679. class DELPHICLASS TPTShellList;
  680. #pragma pack(push, 4)
  681. class PASCALIMPLEMENTATION TPTShellList : public TPTCustomShellList 
  682. {
  683.     typedef TPTCustomShellList inherited;
  684.     
  685. public:
  686.     __property SelectedItem ;
  687.     __property ShListData ;
  688.     __property SortColumn ;
  689.     __property Columns ;
  690.     __property Items ;
  691.     __property _IShellFolder ;
  692.     __property HeaderCanvas ;
  693.     __property HeaderHandle ;
  694.     __property HeaderSortColumn ;
  695.     __property HeaderSortDirection ;
  696.     
  697. __published:
  698.     __property HeaderSortDisplayMode ;
  699.     __property OnItemContextMenu ;
  700.     __property Options ;
  701.     __property Folder ;
  702.     __property FileFilter ;
  703.     __property OnAddItem ;
  704.     __property OnDeleteItem ;
  705.     __property OnPopupHint ;
  706.     __property OnDblClickOpen ;
  707.     __property OnCustomDrawSh ;
  708.     __property OnCustomDrawShEx ;
  709.     __property OnFillComplete ;
  710.     __property OnFillStart ;
  711.     __property OnFolderChanged ;
  712.     __property Align ;
  713.     __property BorderStyle ;
  714.     __property Color ;
  715.     __property ColumnClick ;
  716.     __property OnClick ;
  717.     __property OnDblClick ;
  718.     __property Ctl3D ;
  719.     __property DragMode ;
  720.     __property Enabled ;
  721.     __property ReadOnly ;
  722.     __property Font ;
  723.     __property ParentColor ;
  724.     __property ParentCtl3D ;
  725.     __property ParentFont ;
  726.     __property HideSelection ;
  727.     __property IconOptions ;
  728.     __property MultiSelect ;
  729.     __property OnChange ;
  730.     __property OnChanging ;
  731.     __property OnColumnClick ;
  732.     __property OnDeletion ;
  733.     __property OnEdited ;
  734.     __property OnEditing ;
  735.     __property OnEnter ;
  736.     __property OnExit ;
  737.     __property OnInsert ;
  738.     __property OnDragDrop ;
  739.     __property OnDragOver ;
  740.     __property DragCursor ;
  741.     __property OnStartDrag ;
  742.     __property OnEndDrag ;
  743.     __property OnMouseDown ;
  744.     __property OnMouseMove ;
  745.     __property OnMouseUp ;
  746.     __property ParentShowHint ;
  747.     __property ShowHint ;
  748.     __property PopupMenu ;
  749.     __property ShowColumnHeaders ;
  750.     __property TabOrder ;
  751.     __property TabStop ;
  752.     __property ViewStyle ;
  753.     __property Visible ;
  754.     __property OnKeyDown ;
  755.     __property OnKeyPress ;
  756.     __property OnKeyUp ;
  757.     __property StateImages ;
  758.     __property OnCompare ;
  759.     __property Checkboxes ;
  760.     __property GridLines ;
  761.     __property HotTrack ;
  762.     __property RowSelect ;
  763.     __property Anchors ;
  764.     __property BiDiMode ;
  765.     __property BorderWidth ;
  766.     __property Constraints ;
  767.     __property DragKind ;
  768.     __property FlatScrollBars ;
  769.     __property FullDrag ;
  770.     __property HotTrackStyles ;
  771.     __property OwnerData ;
  772.     __property OwnerDraw ;
  773.     __property ParentBiDiMode ;
  774.     __property OnData ;
  775.     __property OnDataFind ;
  776.     __property OnDataHint ;
  777.     __property OnDataStateChange ;
  778.     __property OnDrawItem ;
  779.     __property OnGetImageIndex ;
  780.     __property OnResize ;
  781.     __property OnEndDock ;
  782.     __property OnSelectItem ;
  783.     __property OnStartDock ;
  784.     __property OnMouseWheelDown ;
  785.     __property OnMouseWheelUp ;
  786.     __property OnMouseWheel ;
  787.     __property OnCustomDraw ;
  788.     __property OnCustomDrawItem ;
  789. public:
  790.     #pragma option push -w-inl
  791.     /* TPTCustomShellList.Create */ inline __fastcall virtual TPTShellList(Classes::TComponent* aOwner)
  792.          : TPTCustomShellList(aOwner) { }
  793.     #pragma option pop
  794.     #pragma option push -w-inl
  795.     /* TPTCustomShellList.Destroy */ inline __fastcall virtual ~TPTShellList(void) { }
  796.     #pragma option pop
  797.     
  798. public:
  799.     #pragma option push -w-inl
  800.     /* TWinControl.CreateParented */ inline __fastcall TPTShellList(HWND ParentWindow) : TPTCustomShellList(
  801.         ParentWindow) { }
  802.     #pragma option pop
  803.     
  804. };
  805.  
  806. #pragma pack(pop)
  807.  
  808. class DELPHICLASS TPTShellCombo;
  809. #pragma pack(push, 4)
  810. class PASCALIMPLEMENTATION TPTShellCombo : public TPTCustomShellCombo 
  811. {
  812.     typedef TPTCustomShellCombo inherited;
  813.     
  814. public:
  815.     __property SelectedFolder ;
  816.     __property ShComboData ;
  817.     
  818. __published:
  819.     __property ShellTree ;
  820.     __property ShellList ;
  821.     __property IndentPixels ;
  822.     __property Options ;
  823.     __property Color ;
  824.     __property Ctl3D ;
  825.     __property DragMode ;
  826.     __property DragCursor ;
  827.     __property DropDownCount ;
  828.     __property Enabled ;
  829.     __property Font ;
  830.     __property ParentColor ;
  831.     __property ParentCtl3D ;
  832.     __property ParentFont ;
  833.     __property ParentShowHint ;
  834.     __property PopupMenu ;
  835.     __property ShowHint ;
  836.     __property Sorted ;
  837.     __property TabOrder ;
  838.     __property TabStop ;
  839.     __property Visible ;
  840.     __property OnChange ;
  841.     __property OnClick ;
  842.     __property OnDblClick ;
  843.     __property OnDragDrop ;
  844.     __property OnDragOver ;
  845.     __property OnDrawItem ;
  846.     __property OnDropDown ;
  847.     __property OnEndDrag ;
  848.     __property OnEnter ;
  849.     __property OnExit ;
  850.     __property OnKeyDown ;
  851.     __property OnKeyPress ;
  852.     __property OnKeyUp ;
  853.     __property OnMeasureItem ;
  854.     __property OnStartDrag ;
  855.     __property Anchors ;
  856.     __property Constraints ;
  857.     __property DragKind ;
  858.     __property ImeMode ;
  859.     __property ImeName ;
  860.     __property BiDiMode ;
  861.     __property ParentBiDiMode ;
  862.     __property OnEndDock ;
  863.     __property OnStartDock ;
  864.     __property OnDeleteItem ;
  865.     __property OnCloseUp ;
  866.     __property OnSelEndCancel ;
  867.     __property OnSelEndOk ;
  868. public:
  869.     #pragma option push -w-inl
  870.     /* TPTCustomShellCombo.Create */ inline __fastcall virtual TPTShellCombo(Classes::TComponent* aOwner
  871.         ) : TPTCustomShellCombo(aOwner) { }
  872.     #pragma option pop
  873.     #pragma option push -w-inl
  874.     /* TPTCustomShellCombo.Destroy */ inline __fastcall virtual ~TPTShellCombo(void) { }
  875.     #pragma option pop
  876.     
  877. public:
  878.     #pragma option push -w-inl
  879.     /* TWinControl.CreateParented */ inline __fastcall TPTShellCombo(HWND ParentWindow) : TPTCustomShellCombo(
  880.         ParentWindow) { }
  881.     #pragma option pop
  882.     
  883. };
  884.  
  885. #pragma pack(pop)
  886.  
  887. #pragma pack(push, 4)
  888. class PASCALIMPLEMENTATION TPTShTreeData : public System::TObject 
  889. {
  890.     typedef System::TObject inherited;
  891.     
  892. private:
  893.     TPTCustomShellTree* mOwner;
  894.     TPTShTreeData* mParent;
  895.     Uptshell95::TItemIDList *mRelPidl;
  896.     Uptshell95::TItemIDList *mAbsPidl;
  897.     Uptshell95::IShellFolder* mThisIshf;
  898.     Uptshell95::IShellFolder* mParentIShf;
  899.     void *mData;
  900.     Uptshell95::PItemIDList __fastcall GetAbsPidl(void);
  901.     bool __fastcall GetEditable(void);
  902.     AnsiString __fastcall GetPathName();
  903.     Uptshell95::IShellFolder* __fastcall GetParentIShf(void);
  904.     Uptshell95::IShellFolder* __fastcall GetThisIShf(void);
  905.     void __fastcall SetData(TPTShTreeData* aParent, Uptshell95::PItemIDList thisRelativePidl);
  906.     void __fastcall SetRelPidl(Uptshell95::PItemIDList newRelPidl);
  907.     
  908. public:
  909.     __fastcall TPTShTreeData(TPTCustomShellTree* aOwner);
  910.     __fastcall virtual ~TPTShTreeData(void);
  911.     unsigned __fastcall GetIDropTarget(HWND h, IDropTarget* &idt);
  912.     bool __fastcall IsRootDir(void);
  913.     void __fastcall Flush(void);
  914.     __property TPTShTreeData* Parent = {read=mParent};
  915.     __property Uptshell95::IShellFolder* ParentIShf = {read=GetParentIShf};
  916.     __property Uptshell95::PItemIDList AbsoluteIdList = {read=GetAbsPidl};
  917.     __property Uptshell95::PItemIDList RelativeIdList = {read=mRelPidl};
  918.     __property Uptshell95::IShellFolder* ThisIShf = {read=GetThisIShf};
  919.     __property AnsiString PathName = {read=GetPathName};
  920.     __property bool Editable = {read=GetEditable, nodefault};
  921.     __property void * Data = {read=mData, write=mData};
  922. };
  923.  
  924. #pragma pack(pop)
  925.  
  926. #pragma pack(push, 4)
  927. class PASCALIMPLEMENTATION TPTShListData : public System::TObject 
  928. {
  929.     typedef System::TObject inherited;
  930.     
  931. private:
  932.     TPTCustomShellList* mOwner;
  933.     Uptshell95::TItemIDList *mAbsPidl;
  934.     Uptshell95::TItemIDList *mRelPidl;
  935.     void *mData;
  936.     AnsiString mDisplayName;
  937.     bool mfDataValid;
  938.     AnsiString mSize;
  939.     AnsiString mType;
  940.     AnsiString mModified;
  941.     Uptshell95::PItemIDList __fastcall GetAbsoluteIdList(void);
  942.     unsigned __fastcall GetAttributes(void);
  943.     bool __fastcall GetEditable(void);
  944.     AnsiString __fastcall GetDisplayName();
  945.     AnsiString __fastcall GetFilename();
  946.     AnsiString __fastcall GetPathName();
  947.     AnsiString __fastcall GetColText(int col);
  948.     void __fastcall GetExtraData(void);
  949.     AnsiString __fastcall GetSize();
  950.     AnsiString __fastcall GetFileType();
  951.     AnsiString __fastcall GetModified();
  952.     void __fastcall SetData(Uptshell95::PItemIDList aRelPidl);
  953.     
  954. public:
  955.     __fastcall TPTShListData(TPTCustomShellList* aOwner);
  956.     __fastcall virtual ~TPTShListData(void);
  957.     bool __fastcall IsFolder(void);
  958.     bool __fastcall IsLnkShortcut(void);
  959.     bool __fastcall IsValid(void);
  960.     bool __fastcall IsFileSystem(void);
  961.     void __fastcall Flush(void);
  962.     __property TPTCustomShellList* Owner = {read=mOwner};
  963.     __property Uptshell95::PItemIDList AbsoluteIdList = {read=GetAbsoluteIdList};
  964.     __property bool Editable = {read=GetEditable, nodefault};
  965.     __property Uptshell95::PItemIDList RelativeIdList = {read=mRelPidl};
  966.     __property unsigned Attributes = {read=GetAttributes, nodefault};
  967.     __property AnsiString DisplayName = {read=GetDisplayName};
  968.     __property AnsiString FileName = {read=GetFilename};
  969.     __property AnsiString PathName = {read=GetPathName};
  970.     __property AnsiString ColText[int col] = {read=GetColText};
  971.     __property AnsiString Size = {read=GetSize};
  972.     __property AnsiString FileType = {read=GetFileType};
  973.     __property AnsiString Modified = {read=GetModified};
  974.     __property void * Data = {read=mData, write=mData};
  975. };
  976.  
  977. #pragma pack(pop)
  978.  
  979. #pragma pack(push, 4)
  980. class PASCALIMPLEMENTATION TPTShComboData : public System::TObject 
  981. {
  982.     typedef System::TObject inherited;
  983.     
  984. private:
  985.     TPTCustomShellCombo* mOwner;
  986.     Uptshell95::IShellFolder* mishfParent;
  987.     Uptshell95::TItemIDList *mParentPidl;
  988.     Uptshell95::TItemIDList *mRelPidl;
  989.     Uptshell95::TItemIDList *mAbsPidl;
  990.     Uptshell95::IShellFolder* mThisIShf;
  991.     void *mData;
  992.     Uptshell95::IShellFolder* __fastcall GetThisIShf(void);
  993.     void __fastcall SetData(Uptshell95::IShellFolder* aParentIShf, Uptshell95::PItemIDList parentPidl, 
  994.         Uptshell95::PItemIDList curRelativePidl);
  995.     
  996. public:
  997.     __fastcall TPTShComboData(TPTCustomShellCombo* aOwner);
  998.     __fastcall virtual ~TPTShComboData(void);
  999.     __property Uptshell95::PItemIDList ParentIdList = {read=mParentPidl};
  1000.     __property Uptshell95::IShellFolder* ParentIShf = {read=mishfParent};
  1001.     __property Uptshell95::PItemIDList RelativeIdList = {read=mRelPidl};
  1002.     __property Uptshell95::PItemIDList AbsoluteIdList = {read=mAbsPidl};
  1003.     __property Uptshell95::IShellFolder* ThisIShf = {read=GetThisIShf};
  1004.     __property void * Data = {read=mData, write=mData};
  1005. };
  1006.  
  1007. #pragma pack(pop)
  1008.  
  1009. //-- var, const, procedure ---------------------------------------------------
  1010. static const Word PTSH_AM_CHANGE_NOTIFY = 0x465;
  1011. static const Word PTSH_AM_DEFERRED_EDIT = 0x466;
  1012. static const Word PTSH_AM_DEFERRED_FILL = 0x467;
  1013. static const Word PTSH_AM_LAST = 0x496;
  1014. extern PACKAGE int PTSH_CHANGE_NOTIFY_DELAY;
  1015. extern PACKAGE int PTSH_CHANGE_NOTIFY_FASTDELAY;
  1016. extern PACKAGE int PTSH_TREE_KEY_UPDATE_DELAY;
  1017. extern PACKAGE int PTSH_MAX_FOLDER_ATTEMPTS;
  1018. extern PACKAGE int PTSH_AUTOSCROLL_THRESHOLD_X;
  1019. extern PACKAGE int PTSH_AUTOSCROLL_THRESHOLD_Y;
  1020. extern PACKAGE int PTSH_AUTOSCROLL_MINDELAY_MS;
  1021. extern PACKAGE Word CF_IDLIST;
  1022. extern PACKAGE bool __fastcall PTShCreateNewFolder(AnsiString aPathname, AnsiString &aNewName);
  1023.  
  1024. }    /* namespace Uptshellcontrols */
  1025. #if !defined(NO_IMPLICIT_NAMESPACE_USE)
  1026. using namespace Uptshellcontrols;
  1027. #endif
  1028. #pragma option pop    // -w-
  1029.  
  1030. #pragma delphiheader end.
  1031. //-- end unit ----------------------------------------------------------------
  1032. #endif    // UPTShellControls
  1033.